안드로이드 API
안드로이드 API (Android API)
1. 개요
안드로이드 API(Application Programming Interface)는 안드로이드 운영체제(OS)가 제공하는 함수, 클래스, 인터페이스의 집합으로, 개발자가 하드웨어 자원에 접근하고 OS의 기능을 활용하여 애플리케이션을 구축할 수 있게 하는 표준 인터페이스이다.
안드로이드 API는 애플리케이션 계층과 리눅스 커널(Linux Kernel) 사이의 중간 매개체 역할을 수행한다. 개발자가 직접 복잡한 커널 제어나 하드웨어 드라이버를 다루지 않고도, API 호출을 통해 카메라, GPS, 센서, 네트워크 등의 기능을 안전하고 일관되게 사용할 수 있도록 설계되어 있다.
2. API 레벨과 버전 관리
안드로이드 OS는 업데이트될 때마다 새로운 기능이 추가되거나 기존 API가 변경된다. 이를 체계적으로 관리하기 위해 버전 이름(예: Android 14)과 별개로 정수 값으로 표현되는 API 레벨(API Level)을 사용한다.
2.1 OS 버전 및 API 레벨 매핑
| 안드로이드 버전 | 마케팅 이름 | API 레벨 | 주요 특징 |
|---|---|---|---|
| Android 15 | Vanilla Ice Cream | 35 | 프라이빗 스페이스, 부분 화면 공유, 엣지-투-엣지 기본 적용 |
| Android 14 | Upside Down Cake | 34 | 예측형 뒤로 가기, 효율적인 포그라운드 서비스, 사진 선택 도구 |
| Android 13 | Tiramisu | 33 | 알림 권한 세분화, 테마 앱 아이콘, 사진/동영상 미디어 권한 분리 |
| Android 12 | S | 31/32 | Material You 디자인, 근접 알림 권한, 개인정보 보호 대시보드 |
| Android 11 | Red Velvet Cake | 30 | 범위 지정 저장소(Scoped Storage), 일회성 권한 부여 |
| Android 10 | Q | 29 | 다크 모드 시스템 지원, 제스처 네비게이션, 폴더블 기기 지원 |
| Android 9 | Pie | 28 | 적응형 배터리, 노치 디자인 지원, 앱 슬라이싱 |
2.2 SDK 버전 설정의 차이점
안드로이드 프로젝트의 build.gradle 파일에서 설정하는 세 가지 버전 값은 앱의 동작 범위와 컴파일 방식을 결정한다.
<a href="/doc/%EA%B8%B0%EC%88%A0/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%20%EA%B0%9C%EB%B0%9C/%EB%B9%8C%EB%93%9C%20%EC%84%A4%EC%A0%95/compileSdkVersion" class="wiki-link wiki-link-missing">compileSdkVersion</a>: 앱을 컴파일할 때 사용할 API 레벨이다. 이 버전이 높을수록 최신 API 기능을 코드에서 참조할 수 있다.<a href="/doc/%EA%B8%B0%EC%88%A0/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%20%EA%B0%9C%EB%B0%9C/%EB%B9%8C%EB%93%9C%20%EC%84%A4%EC%A0%95/targetSdkVersion" class="wiki-link wiki-link-missing">targetSdkVersion</a>: 앱이 최적화되어 동작하도록 설계된 API 레벨이다. OS는 이 값을 확인하여 해당 버전의 동작 방식(Behavior Changes)을 적용한다.<a href="/doc/%EA%B8%B0%EC%88%A0/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%20%EA%B0%9C%EB%B0%9C/%EB%B9%8C%EB%93%9C%20%EC%84%A4%EC%A0%95/minSdkVersion" class="wiki-link wiki-link-missing">minSdkVersion</a>: 앱이 실행될 수 있는 최소 API 레벨이다. 이 버전보다 낮은 OS를 탑재한 기기에서는 앱 설치가 불가능하다.
3. 주요 API 구성 요소 및 프레임워크
안드로이드 프레임워크 API는 앱의 생명주기를 관리하고 시스템 자원을 효율적으로 사용하기 위해 4가지 핵심 컴포넌트를 중심으로 구성된다.
- Activity (액티비티): 사용자와 상호작용하는 단일 화면을 정의하는 API. UI 렌더링과 이벤트 처리를 담당한다.
- Service (서비스): 백그라운드에서 오래 실행되는 작업을 처리하는 API. UI 없이 네트워크 다운로드나 음악 재생 등을 수행한다.
- Broadcast Receiver (브로드캐스트 수신자): 시스템이나 다른 앱에서 보내는 이벤트 메시지(예: 배터리 부족, 부팅 완료)를 수신하고 반응하는 API.
- Content Provider (콘텐츠 제공자): 앱 간에 데이터를 공유하거나 데이터베이스에 접근할 수 있게 하는 인터페이스 API.
3.1 현대적 UI 프레임워크: Jetpack Compose
최근 안드로이드 개발은 기존의 XML 기반 View 시스템에서 Jetpack Compose라는 선언형 UI 프레임워크로 전환되는 추세이다. Compose는 명령형으로 UI를 구성하던 기존 방식(예: findViewById 후 속성 변경)과 달리, 상태(State)에 따라 UI가 자동으로 업데이트되도록 정의한다. 이를 통해 UI 코드의 양을 획기적으로 줄이고, Activity의 생명주기에 덜 의존적인 유연한 UI 구현이 가능해졌다.
4. API 권한 요청 및 관리
안드로이드 API는 보안을 위해 민감한 데이터나 하드웨어 접근 시 권한(Permission) 시스템을 운영한다.
4.1 권한의 분류
- 일반 권한 (Normal Permissions): 개인정보 침해 위험이 낮은 권한(예: 인터넷 접근).
AndroidManifest.xml에 선언하는 것만으로 자동 승인된다. - 위험 권한 (Dangerous Permissions): 사용자 개인정보에 직접 접근하는 권한(예: 카메라, 위치, 연락처). 런타임(Runtime)에 사용자에게 명시적인 동의를 얻어야 한다.
4.2 권한 요청 흐름
- 선언:
AndroidManifest.xml파일에 필요한 권한을 명시한다. - 확인:
ContextCompat.checkSelfPermission()을 통해 권한 획득 여부를 확인한다. - 요청: 권한이 없다면
ActivityCompat.requestPermissions()를 호출하여 사용자 팝업을 띄운다. - 결과 처리:
onRequestPermissionsResult()콜백을 통해 사용자의 승인/거부 여부에 따라 기능을 실행하거나 안내 메시지를 출력한다.
5. 핵심 API 라이브러리 및 도구
구글은 OS 업데이트와 별개로 최신 기능을 빠르게 보급하기 위해 확장 라이브러리를 제공한다.
- AndroidX (Jetpack): 기존 Support Library를 대체하는 라이브러리 집합이다.
<a href="/doc/%EA%B8%B0%EC%88%A0/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4/%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98%20%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8/ViewModel" class="wiki-link wiki-link-missing">ViewModel</a>,<a href="/doc/%EA%B8%B0%EC%88%A0/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4/%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98%20%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8/LiveData" class="wiki-link wiki-link-missing">LiveData</a>,<a href="/doc/%EA%B8%B0%EC%88%A0/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4/%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98%20%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8/Room" class="wiki-link wiki-link-missing">Room</a>등 아키텍처 컴포넌트를 제공하여 개발 표준을 제시하고 하위 호환성을 보장한다. - Google Play Services API: OS 업데이트 없이 구글 플레이 스토어를 통해 업데이트되는 API이다. 구글 지도(Maps), Firebase, 푸시 알림(FCM) 등 구글 서비스 연동에 필수적이다.
5.1 AndroidX와 SDK API 비교
| 구분 | SDK API (Framework API) | AndroidX (Jetpack) |
|---|---|---|
| 업데이트 방식 | OS 업데이트(시스템 펌웨어 업데이트) 필요 | 앱 업데이트 시 라이브러리 포함 (Gradle) |
| 배포 주체 | 안드로이드 OS (AOSP) | 구글 (Jetpack 라이브러리) |
| 호환성 | API 레벨에 따라 사용 가능 여부 결정 | 내부적으로 버전 분기를 처리하여 하위 호환성 제공 |
| 특징 | 하드웨어 및 OS 핵심 기능 제어 | 아키텍처 가이드라인 및 최신 UI/기능 제공 |
6. API 구현 및 최적화 전략
현대적인 안드로이드 API 호출은 비동기 처리와 콜백 구조를 가지며, 다양한 기기 환경을 고려한 호환성 처리가 필수적이다.
6.1 구현 예시 (위치 정보 API)
아래는 권한 확인부터 비동기 API 호출까지의 전체 흐름을 보여주는 Kotlin 예시이다.
// 1. 권한 확인 및 요청
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
// 권한 요청 API 호출
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), 100)
} else {
// 2. 권한이 있을 경우 API 호출
fetchLocation()
}
// 권한 요청 결과 처리 콜백
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == 100 && grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
fetchLocation()
} else {
Log.e("API_TEST", "위치 권한이 거부되었습니다.")
}
}
private fun fetchLocation() {
val fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)
// 3. 비동기 호출 및 콜백 처리
fusedLocationClient.lastLocation.addOnSuccessListener { location ->
if (location != null) {
Log.d("API_TEST", "위도: ${location.latitude}, 경도: ${location.longitude}")
} else {
Log.d("API_TEST", "위치 정보를 가져올 수 없습니다.")
}
}.addOnFailureListener { exception ->
Log.e("API_TEST", "API 호출 실패: ${exception.message}")
}
}
6.2 하위 호환성 처리 전략
다양한 API 레벨의 기기를 지원하기 위해 다음과 같은 전략을 사용한다.
1) 버전 분기 처리
특정 API 레벨 이상에서만 제공되는 기능을 사용할 때는 Build.VERSION.SDK_INT를 통해 런타임 체크를 수행한다.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
// Android 13(API 33) 이상의 최신 API 사용 (예: 세분화된 미디어 권한)
requestPermission(Manifest.permission.READ_MEDIA_IMAGES)
} else {
// 구형 버전용 대체 로직 구현 (예: 통합 저장소 권한)
requestPermission(Manifest.permission.READ_EXTERNAL_STORAGE)
}
2) API 레벨별 변경 사항 확인 및 도구 활용
* Android Developers 'Behavior Changes' 문서: 각 버전별로 targetSdkVersion을 올렸을 때 변경되는 동작(Breaking Changes)을 공식 문서에서 확인한다.
* Lint 도구: Android Studio의 Lint 검사 기능을 통해 현재 설정된 minSdkVersion에서 지원하지 않는 API 호출을 실시간으로 감지하고 경고를 받는다.
7. 공식 문서 및 참조 문헌
- Android Developers 공식 문서
- Android API 레벨 참조 가이드 $\rightarrow$ Android API Levels (정확한 경로:
https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels수정 필요 시https://developer.android.com/guide/topic/ ਤਾਂ-api-levels대신https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$https://developer.android.com/guide/topic/ ਤਾਂ-api-levels$\rightarrow$ `
이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.
주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.